Multicast may be used in communication networks in order to deliver data from a source device to a group of destination devices. The source device may be referred to as a multicast source and the group of destination devices permitted to receive the multicast data may be referred to as a multicast group. There are many varieties of multicast which may be used to deliver data from a source computer to a group of destination computers. One type of multicast is Internet Protocol (IP) multicast, which is often used in IP applications such as streaming media, IP television (IPTV), and the like.
Multicast of data from a multicast source to a multicast group may be supported using various types of communication networks. For example, Multiprotocol Label Switching (MPLS) networks may be used to support multicast services. MPLS networks support paths known as Label Switched Paths (LSPs). The Label Distribution Protocol (LDP) is a routing protocol which may be used to support exchange of label mapping information for LSPs in MPLS networks. The Multicast Label Distribution Protocol (MLDP) provides extensions to the LDP for the setup of point-to-multipoint (P2MP) LSPs and multipoint-to-multipoint (MP2MP) LSPs in MPLS networks.
Multicast of data from a multicast source to a multicast group also may be supported using various types of communication protocols. For example, Protocol Independent Multicast (PIM) is a collection of multicast routing protocols including, among others, PIM Sparse Mode (PIM-SM), PIM Dense Mode (PIM-DM), Bidirectional PIM, PIM—Source Specific Multicast (PIM-SSM), and so forth. PIM protocols typically use routing information supplied by other routing protocols (e.g., Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Border Gateway Protocol (BGP), Multicast Source Discovery Protocol (MSDP), and so forth.
PIM-SM is suited for multicast groups that will be sparsely distributed throughout a network. PIM-SM supports the use of source-based trees, in which a separate multicast distribution tree (MDT) is built for each source that sends data to a multicast group, which enables the use of Source Specific Multicast (SSM) in which a host identifies a multicast data stream in a multicast join/prune message by a multicast source (S) and multicast group (G) address pair (S, G). PIM-SM also supports any-source multicast (ASM) in which a host identifies a multicast data stream by a multicast rendezvous point (RP) and multicast group (G) address pair (*,G).
PIM-SM requires that routers of a network supporting a multicast data stream explicitly request to join the MDT of the data stream. The routers may send requests to join the MDT to their upstream neighboring routers in the network. The routers may use PIM join message and PIM prune messages to join and leave MDTs respectively.
In some cases, a network operator may wish to disable PIM in the multicast distribution network and, rather, to use MLDP in order to support the multicast traffic, as described in Internet Engineering Task Force (IETF) Request For Comment (RFC) 6826.